Interprocess communication via named pipes
Two types of named pipes are used for exchanging messages and data between Qlik Sense or QlikView and Connector:
- Command pipe is a named pipe that is used for exchanging XML formatted messages,that is, Qlik Sense and QlikView requests, which describe commands to be performed by the Connector, and the Connector replies, which describe status of the executed commands. In certain cases, replies may include result data.
- Data pipe is a named pipe that is used by the Connector to return QVX formatted data, for example, SQL statement result. For every QVX_EXECUTE command request a new data pipe is created.
Below are example scenarios on how Qlik Sense (and QlikView) and the Connector exchange messages to execute
Connect statement
- Qlik Sense or QlikView sends a connect request (QVX_CONNECT) through the command pipe and waits for the Connector reply.
- The Connector executes the connect command and sends the reply if the connection to the data source was successful or not (QVX_OK or QVX_CONNECT_ERROR).
Select statement
- Qlik Sense or QlikView sends an execute request (QVX_EXECUTE) and waits for the Connector reply. The request includes the SQL statement and the name of a data pipe, by which QVX formatted result should be returned.
- After executing SQL statement, the Connector sends the reply on the execute command execution status, e.g. QVX_OK or QVX_TABLE_NOT_FOUND.
- The Connector starts writing SQL statement result data to the data pipe.
- Qlik Sense and QlikView, after receiving QVX_OK reply to the execute request, start reading data from the data pipe.